package co.edu.javeriana.konigsberg.xavier.dao;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityTransaction;

import co.edu.javeriana.konigsberg.xavier.dao.desc.PropuestaTecnicaDAOLocal;
import co.edu.javeriana.konigsberg.xavier.entidad.Propuestatecnica;

@Stateless
public class PropuestaTecnicaDAO extends DAO<Propuestatecnica> implements PropuestaTecnicaDAOLocal{

	@Override
	public List<Propuestatecnica> obtenerLista() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Propuestatecnica> obtenerListaPorPadre(BigInteger idPrograma) {
		return (List<Propuestatecnica>) em.createNamedQuery("Propuestatecnica.findByParent").setParameter("idPrograma", idPrograma).getResultList();
	}
	
	@Override
	public Propuestatecnica obtenerPorIdPadre(BigInteger idPrograma) {
		List<Propuestatecnica> propuestatecnicas = (List<Propuestatecnica>) em.createNamedQuery("Propuestatecnica.findByParent").setParameter("idPrograma", idPrograma).getResultList();
		if(propuestatecnicas.size() > 0){
			return propuestatecnicas.get(0);
		}
		return null;
	}

	@Override
	public Propuestatecnica obtenerPorId(BigInteger id) {
		return em.find(Propuestatecnica.class, id);
	}

	@Override
	public void guardar(Propuestatecnica propuestatecnica) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(propuestatecnica);
		tx.commit();
	}

	@Override
	public void actualizar(Propuestatecnica propuestatecnica) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(propuestatecnica);
		tx.commit();
	}

}
